package edu.uoc.tds.pac4.client.ss3;

import java.rmi.RemoteException;
import java.util.Vector;

import edu.uoc.tds.pac4.beans.Centre;
import edu.uoc.tds.pac4.beans.Participant;
import edu.uoc.tds.pac4.beans.TipusEvent;
import edu.uoc.tds.pac4.beans.Universitat;
import edu.uoc.tds.pac4.common.GestioEventsException;
import edu.uoc.tds.pac4.common.PantallaError;
import edu.uoc.tds.pac4.interfaces.RemoteInterface;



public abstract class PantallaEstadistiques implements InterfaceFiltreEstadistiques {


	protected RemoteInterface remot;
	
	/**
	 * Carrega les dades de les universitats
	 */
	@Override
	public Vector<Universitat> carregarUniversitats() {
		try {
			// crida al remot per rebre el llistat d'universitats
			return remot.getUniversitats(true);
		} catch (RemoteException e) {
			new PantallaError("Remote.Error", PantallaError.Tipus.ERROR);
		} catch (GestioEventsException e) {
			new PantallaError(e.getMessage(), PantallaError.Tipus.ERROR);
		}

		return null;
	}

	/**
	 * Retorna els centres d'una universitat
	 */
	@Override
	public Vector<Centre> carregarCentres(Universitat universitat) {

		try {
			// crida al remot per rebre el llistat de centres
			return remot.getCentres(universitat,true);
		} catch (RemoteException e) {
			new PantallaError("Remote.Error", PantallaError.Tipus.ERROR);
		} catch (GestioEventsException e) {
			new PantallaError(e.getMessage(), PantallaError.Tipus.ERROR);
		}

		return null;
	}
	
	/**
	 * Carrega les dades dels Tipus d'events
	 */
	@Override
	public Vector<TipusEvent> carregarTipusEvents() {
		try {
			// crida al remot per rebre el llistat d'TipusEvents
			return remot.getTipusEvents(true);
		} catch (RemoteException e) {
			new PantallaError("Remote.Error", PantallaError.Tipus.ERROR);
		} catch (GestioEventsException e) {
			new PantallaError(e.getMessage(), PantallaError.Tipus.ERROR);
		}

		return null;
	}
	
	/**
	 * Carrega les dades dels participants
	 */
	@Override
	public Vector<Participant> carregarParticipants() {
		try {
			// crida al remot per rebre el llistat d'universitats
			return remot.getParticipants(true);
		} catch (RemoteException e) {
			new PantallaError("Remote.Error", PantallaError.Tipus.ERROR);
		} catch (GestioEventsException e) {
			new PantallaError(e.getMessage(), PantallaError.Tipus.ERROR);
		}

		return null;
	}
}

